<!doctype html>
<html lang="zh-cn">
  <head>
    <title>Python--面向对象(3) // JW Blog</title>
    <meta charset="utf-8" />
    <meta name="generator" content="Hugo 0.60.1" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="author" content="John Doe" />
    <meta name="description" content="" />
    <link rel="stylesheet" href="https://duyi111.gitee.io/css/main.min.f90f5edd436ec7b74ad05479a05705770306911f721193e7845948fb07fe1335.css" />

    
    <meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Python--面向对象(3)"/>
<meta name="twitter:description" content="1.私有属性和私有方法  私有:  如果一个属性名或者方法名是以两个下划线开头的就称为私有   特点:  只能在类的内部访问 不能在类的外部访问   注意:  在子类继承了父类,子类只是继承了父类的公有属性和公有方法    2.修改私有属性的值  如果类中属性变为了私有属性,我们可以通过间接的方式访问私有属性  定义一个公有方法解决这个问题    3.类属性  特点:  描述一个类的特征和通过这个类创建出来所有的对象的统一特征   取值: 类名.类属性名 对象名.类属性名  赋值: 类名.类属性名 = 数值   4.类方法  作用:  一般配合类属性使用,因为类方法中提供了cls给使用类名提供了方便   定义格式: @classmethod def 类方法名(cls): pass  调用格式: 类名.类方法名() 对象名.类方法名()   5.静态方法  作用:  如果在方法的内部不会使用self也不会使用cls就可以定义一个静态方法   定义格式 @staticmethod def 静态方法名(): pass  调用格式: 类名."/>

    <meta property="og:title" content="Python--面向对象(3)" />
<meta property="og:description" content="1.私有属性和私有方法  私有:  如果一个属性名或者方法名是以两个下划线开头的就称为私有   特点:  只能在类的内部访问 不能在类的外部访问   注意:  在子类继承了父类,子类只是继承了父类的公有属性和公有方法    2.修改私有属性的值  如果类中属性变为了私有属性,我们可以通过间接的方式访问私有属性  定义一个公有方法解决这个问题    3.类属性  特点:  描述一个类的特征和通过这个类创建出来所有的对象的统一特征   取值: 类名.类属性名 对象名.类属性名  赋值: 类名.类属性名 = 数值   4.类方法  作用:  一般配合类属性使用,因为类方法中提供了cls给使用类名提供了方便   定义格式: @classmethod def 类方法名(cls): pass  调用格式: 类名.类方法名() 对象名.类方法名()   5.静态方法  作用:  如果在方法的内部不会使用self也不会使用cls就可以定义一个静态方法   定义格式 @staticmethod def 静态方法名(): pass  调用格式: 类名." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://duyi111.gitee.io/post/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A13/" />
<meta property="article:published_time" content="2020-01-11T21:57:07+08:00" />
<meta property="article:modified_time" content="2020-01-11T21:57:07+08:00" />


  </head>
  <body>
    <header class="app-header">
      <a href="https://duyi111.gitee.io/"><img class="app-header-avatar" src="/avatar.jpg" alt="John Doe" /></a>
      <h1>JW Blog</h1>
      <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vehicula turpis sit amet elit pretium.</p>
      <div class="app-header-social">
        
      </div>
    </header>
    <main class="app-container">
      
  <article class="post">
    <header class="post-header">
      <h1 class ="post-title">Python--面向对象(3)</h1>
      <div class="post-meta">
        <div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
  <title>calendar</title>
  <rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
          Jan 11, 2020
        </div>
        <div>
          <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-clock">
  <title>clock</title>
  <circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
</svg>
          1 min read
        </div></div>
    </header>
    <div class="post-content">
      <h2 id="1">1.私有属性和私有方法</h2>
<ul>
<li>私有:
<ul>
<li>如果一个属性名或者方法名是以两个下划线开头的就称为私有</li>
</ul>
</li>
<li>特点:
<ul>
<li>只能在类的内部访问</li>
<li>不能在类的外部访问</li>
</ul>
</li>
<li>注意:
<ul>
<li>在子类继承了父类,子类只是继承了父类的公有属性和公有方法</li>
</ul>
</li>
</ul>
<h2 id="2">2.修改私有属性的值</h2>
<ul>
<li>如果类中属性变为了私有属性,我们可以通过间接的方式访问私有属性
<ul>
<li>定义一个公有方法解决这个问题</li>
</ul>
</li>
</ul>
<h2 id="3">3.类属性</h2>
<ul>
<li>特点:
<ul>
<li>描述一个类的特征和通过这个类创建出来所有的对象的统一特征</li>
</ul>
</li>
<li>取值:
<pre><code>类名.类属性名
对象名.类属性名
</code></pre></li>
<li>赋值:
<pre><code>类名.类属性名 = 数值
</code></pre></li>
</ul>
<h2 id="4">4.类方法</h2>
<ul>
<li>作用:
<ul>
<li>一般配合类属性使用,因为类方法中提供了cls给使用类名提供了方便</li>
</ul>
</li>
<li>定义格式:
<pre><code>@classmethod
def 类方法名(cls):
    pass
</code></pre></li>
<li>调用格式:
<pre><code>类名.类方法名()
对象名.类方法名()
</code></pre></li>
</ul>
<h2 id="5">5.静态方法</h2>
<ul>
<li>作用:
<ul>
<li>如果在方法的内部不会使用self也不会使用cls就可以定义一个静态方法</li>
</ul>
</li>
<li>定义格式
<pre><code>@staticmethod
def 静态方法名():
    pass
</code></pre></li>
<li>调用格式:
<pre><code>类名.静态方法名()
对象名.静态方法名()
</code></pre></li>
</ul>
<h2 id="6">6.多态</h2>
<ul>
<li>概念:
<ul>
<li>不同的子类对象,调用了相同的父类方法,产生了不同的效果</li>
</ul>
</li>
<li>作用:
<ul>
<li>调用方法的一种技巧</li>
</ul>
</li>
</ul>

    </div>
    <div class="post-footer">
      
    </div>
  </article>

    </main>
  </body>
</html>
